/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mxi.its.dds2.Bean;

import com.sun.tracing.dtrace.ArgsAttributes;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIData;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import mx.its.dsw2.biblioteca.Usuario;
import mx.its.dsw2.biblioteca.bl.UsuarioBlLocal;
import org.primefaces.context.RequestContext;
import org.primefaces.event.RowEditEvent;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.ToggleEvent;
import org.primefaces.event.UnselectEvent;

/**
 *
 * @author Carlos Asis
 */
@ManagedBean
@SessionScoped
public class UsuarioBean {

    @EJB
    private UsuarioBlLocal usuarioBl;
    private Usuario usuario;
    private List<Usuario> list;
    private List<Usuario> filteredUser;

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Usuario> getList() {
        list = usuarioBl.getListAll();
        return list;
    }

    public void setList(List<Usuario> list) {
        this.list = list;
    }

    public List<Usuario> getFilteredUser() {
        return filteredUser;
    }

    public void setFilteredUser(List<Usuario> filteredUser) {
        this.filteredUser = filteredUser;
    }

    public String prepararUsuario() {
        usuario = new Usuario();
        return "UsuarioCrearEditar";
    }

    /////////////////////Para el registro usuario saber cuando se abre//////////////
    public String crearUsuario() {

        usuarioBl.register(usuario);
        return "UsuarioFacelets";
    }

    public void handleToggle(ToggleEvent event) {

        if (event.getVisibility().name().equals("VISIBLE")) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, event.getComponent().getId() + " toggled", "Status:" + event.getVisibility().name());
            addMessage(message);
            // this.reset();
            usuario = new Usuario();
        } else if (event.getVisibility().name().equals("HIDDEN")) {
            this.reset();
            usuario = new Usuario();
        } else {
        }
    }

    private void addMessage(FacesMessage message) {
        FacesContext.getCurrentInstance().addMessage(null, message);


    }

    public void reset() {
        RequestContext.getCurrentInstance().reset("form:pnl");

    }

    /////////////termina 
    //////////////Editar datos de la tabla///////////////
    public void onEdit(SelectEvent event) {
        FacesMessage msg = new FacesMessage("Car Selected", usuario.getNombre());

        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void onRowUnselect(UnselectEvent event) {
        FacesMessage msg = new FacesMessage("Car Unselected", ((Usuario) event.getObject()).getNombre());

        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public String editUser() {
        usuarioBl.modify(usuario);
        return "UsuarioFacelets";
    }

    ////////////////////////terminba edicion
    /**
     * Creates a new instance of UsuarioBean
     */
    public UsuarioBean() {
        list = new ArrayList<Usuario>();
        usuario = new Usuario();

        //list=usuarioBl.getListAll();
    }
}
